package pantomime.gestures;
import pantomime.hardware.*;

/**
 * @author Pavel
 * @Description Non-instantiable base class for Gesture objects. Defines attributes and methods required of all derived classes.
 * 
 */
public abstract class Gesture {
	
	//All gestures need a name and ID
	protected String _sName;
	protected int _sID;
	
	public Gesture(){
		_sName = "";
		_sID = -1;
	}
	
	public Gesture(String sName, int sID){
		_sName = sName;
		_sID = sID;
	}
	
	protected abstract double compareToGlove(Glove oGlove);
	
	//Derived classes must implement a 'Recognize' method. TODO: should this be in here? Perhaps its own class/utility.
	public abstract int Recognize(Glove oGlove);

	public String getName() {
		return _sName;
	}

	public void setName(String _sName) {
		this._sName = _sName;
	}
	
	public int getID(){
		return _sID;
	}
	
	public void setID(int sID){
		this._sID = sID;
	}

}
